home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QuickdrawText.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  9.9 KB  |  256 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QuickdrawText.p
  3.  
  4.      Contains:    Quickdraw Text Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1983-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QuickdrawText;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QUICKDRAWTEXT__}
  28. {$SETC __QUICKDRAWTEXT__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QuickdrawTextIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46.  
  47. CONST
  48.                                                                 {  CharToPixel directions  }
  49.     leftCaret                    = 0;                            { Place caret for left block }
  50.     rightCaret                    = -1;                            { Place caret for right block }
  51.     kHilite                        = 1;                            { Direction is SysDirection }
  52.     smLeftCaret                    = 0;                            { Place caret for left block - obsolete  }
  53.     smRightCaret                = -1;                            { Place caret for right block - obsolete  }
  54.     smHilite                    = 1;                            { Direction is TESysJust - obsolete  }
  55.  
  56.                                                                 { Constants for styleRunPosition argument in PortionLine, DrawJustified, MeasureJustified, CharToPixel, and PixelToChar. }
  57.     onlyStyleRun                = 0;                            {  This is the only style run on the line  }
  58.     leftStyleRun                = 1;                            {  This is leftmost of multiple style runs on the line  }
  59.     rightStyleRun                = 2;                            {  This is rightmost of multiple style runs on the line  }
  60.     middleStyleRun                = 3;                            {  There are multiple style runs on the line and this is neither the leftmost nor the rightmost.  }
  61.     smOnlyStyleRun                = 0;                            {  obsolete  }
  62.     smLeftStyleRun                = 1;                            {  obsolete  }
  63.     smRightStyleRun                = 2;                            {  obsolete  }
  64.     smMiddleStyleRun            = 3;                            {  obsolete  }
  65.  
  66. { type for styleRunPosition parameter in PixelToChar etc. }
  67.  
  68. TYPE
  69.     JustStyleCode                        = INTEGER;
  70.     FontInfoPtr = ^FontInfo;
  71.     FontInfo = RECORD
  72.         ascent:                    INTEGER;
  73.         descent:                INTEGER;
  74.         widMax:                    INTEGER;
  75.         leading:                INTEGER;
  76.     END;
  77.  
  78.     FormatOrder                            = ARRAY [0..0] OF INTEGER;
  79.     FormatOrderPtr                        = ^FormatOrder;
  80. { FormatStatus was moved to TextUtils.i }
  81.     OffPairPtr = ^OffPair;
  82.     OffPair = RECORD
  83.         offFirst:                INTEGER;
  84.         offSecond:                INTEGER;
  85.     END;
  86.  
  87.     OffsetTable                            = ARRAY [0..2] OF OffPair;
  88.     StyleRunDirectionProcPtr = ProcPtr;  { FUNCTION StyleRunDirection(styleRunIndex: INTEGER; dirParam: UNIV Ptr): BOOLEAN; }
  89.  
  90.     StyleRunDirectionUPP = UniversalProcPtr;
  91.  
  92. CONST
  93.     uppStyleRunDirectionProcInfo = $00000390;
  94.  
  95. FUNCTION NewStyleRunDirectionProc(userRoutine: StyleRunDirectionProcPtr): StyleRunDirectionUPP;
  96.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  97.     INLINE $2E9F;
  98.     {$ENDC}
  99.  
  100. FUNCTION CallStyleRunDirectionProc(styleRunIndex: INTEGER; dirParam: UNIV Ptr; userRoutine: StyleRunDirectionUPP): BOOLEAN;
  101.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  102.     INLINE $205F, $4E90;
  103.     {$ENDC}
  104. FUNCTION Pixel2Char(textBuf: Ptr; textLen: INTEGER; slop: INTEGER; pixelWidth: INTEGER; VAR leadingEdge: BOOLEAN): INTEGER;
  105.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  106.     INLINE $2F3C, $820E, $0014, $A8B5;
  107.     {$ENDC}
  108. FUNCTION Char2Pixel(textBuf: Ptr; textLen: INTEGER; slop: INTEGER; offset: INTEGER; direction: INTEGER): INTEGER;
  109.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  110.     INLINE $2F3C, $820C, $0016, $A8B5;
  111.     {$ENDC}
  112. FUNCTION PixelToChar(textBuf: Ptr; textLength: LONGINT; slop: Fixed; pixelWidth: Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  113.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  114.     INLINE $2F3C, $8222, $002E, $A8B5;
  115.     {$ENDC}
  116. FUNCTION CharToPixel(textBuf: Ptr; textLength: LONGINT; slop: Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  117.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  118.     INLINE $2F3C, $821C, $0030, $A8B5;
  119.     {$ENDC}
  120. PROCEDURE DrawJustified(textPtr: Ptr; textLength: LONGINT; slop: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  121.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  122.     INLINE $2F3C, $8016, $0032, $A8B5;
  123.     {$ENDC}
  124. PROCEDURE MeasureJustified(textPtr: Ptr; textLength: LONGINT; slop: Fixed; charLocs: Ptr; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  125.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  126.     INLINE $2F3C, $801A, $0034, $A8B5;
  127.     {$ENDC}
  128. FUNCTION PortionLine(textPtr: Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Point; denom: Point): Fixed;
  129.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  130.     INLINE $2F3C, $8412, $0036, $A8B5;
  131.     {$ENDC}
  132. PROCEDURE HiliteText(textPtr: Ptr; textLength: INTEGER; firstOffset: INTEGER; secondOffset: INTEGER; VAR offsets: OffsetTable);
  133.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  134.     INLINE $2F3C, $800E, $001C, $A8B5;
  135.     {$ENDC}
  136. PROCEDURE DrawJust(textPtr: Ptr; textLength: INTEGER; slop: INTEGER);
  137.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  138.     INLINE $2F3C, $8008, $001E, $A8B5;
  139.     {$ENDC}
  140. PROCEDURE MeasureJust(textPtr: Ptr; textLength: INTEGER; slop: INTEGER; charLocs: Ptr);
  141.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  142.     INLINE $2F3C, $800C, $0020, $A8B5;
  143.     {$ENDC}
  144. FUNCTION PortionText(textPtr: Ptr; textLength: LONGINT): Fixed;
  145.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  146.     INLINE $2F3C, $8408, $0024, $A8B5;
  147.     {$ENDC}
  148. FUNCTION VisibleLength(textPtr: Ptr; textLength: LONGINT): LONGINT;
  149.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  150.     INLINE $2F3C, $8408, $0028, $A8B5;
  151.     {$ENDC}
  152. PROCEDURE GetFormatOrder(ordering: FormatOrderPtr; firstFormat: INTEGER; lastFormat: INTEGER; lineRight: BOOLEAN; rlDirProc: StyleRunDirectionUPP; dirParam: Ptr);
  153.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  154.     INLINE $2F3C, $8012, $FFFC, $A8B5;
  155.     {$ENDC}
  156.  
  157.  
  158. PROCEDURE TextFont(font: INTEGER);
  159.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  160.     INLINE $A887;
  161.     {$ENDC}
  162. PROCEDURE TextFace(face: StyleParameter);
  163.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  164.     INLINE $A888;
  165.     {$ENDC}
  166. PROCEDURE TextMode(mode: INTEGER);
  167.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  168.     INLINE $A889;
  169.     {$ENDC}
  170. PROCEDURE TextSize(size: INTEGER);
  171.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  172.     INLINE $A88A;
  173.     {$ENDC}
  174. PROCEDURE SpaceExtra(extra: Fixed);
  175.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  176.     INLINE $A88E;
  177.     {$ENDC}
  178. PROCEDURE DrawChar(ch: CharParameter);
  179.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  180.     INLINE $A883;
  181.     {$ENDC}
  182. PROCEDURE DrawString(s: ConstStr255Param);
  183.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  184.     INLINE $A884;
  185.     {$ENDC}
  186. PROCEDURE DrawText(textBuf: UNIV Ptr; firstByte: INTEGER; byteCount: INTEGER);
  187.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  188.     INLINE $A885;
  189.     {$ENDC}
  190. FUNCTION CharWidth(ch: CharParameter): INTEGER;
  191.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  192.     INLINE $A88D;
  193.     {$ENDC}
  194. FUNCTION StringWidth(s: ConstStr255Param): INTEGER;
  195.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  196.     INLINE $A88C;
  197.     {$ENDC}
  198. FUNCTION TextWidth(textBuf: UNIV Ptr; firstByte: INTEGER; byteCount: INTEGER): INTEGER;
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $A886;
  201.     {$ENDC}
  202. PROCEDURE MeasureText(count: INTEGER; textAddr: UNIV Ptr; charLocs: UNIV Ptr);
  203.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  204.     INLINE $A837;
  205.     {$ENDC}
  206. PROCEDURE GetFontInfo(VAR info: FontInfo);
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $A88B;
  209.     {$ENDC}
  210. PROCEDURE CharExtra(extra: Fixed);
  211.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  212.     INLINE $AA23;
  213.     {$ENDC}
  214. PROCEDURE StdText(count: INTEGER; textAddr: UNIV Ptr; numer: Point; denom: Point);
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $A882;
  217.     {$ENDC}
  218. FUNCTION StdTxMeas(byteCount: INTEGER; textAddr: UNIV Ptr; VAR numer: Point; VAR denom: Point; VAR info: FontInfo): INTEGER;
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $A8ED;
  221.     {$ENDC}
  222.  
  223. {$IFC OLDROUTINENAMES }
  224. FUNCTION NPixel2Char(textBuf: Ptr; textLength: LONGINT; slop: Fixed; pixelWidth: Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  225.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  226.     INLINE $2F3C, $8222, $002E, $A8B5;
  227.     {$ENDC}
  228. FUNCTION NChar2Pixel(textBuf: Ptr; textLength: LONGINT; slop: Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $2F3C, $821C, $0030, $A8B5;
  231.     {$ENDC}
  232. PROCEDURE NDrawJust(textPtr: Ptr; textLength: LONGINT; slop: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  233.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  234.     INLINE $2F3C, $8016, $0032, $A8B5;
  235.     {$ENDC}
  236. PROCEDURE NMeasureJust(textPtr: Ptr; textLength: LONGINT; slop: Fixed; charLocs: Ptr; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  237.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  238.     INLINE $2F3C, $801A, $0034, $A8B5;
  239.     {$ENDC}
  240. FUNCTION NPortionText(textPtr: Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Point; denom: Point): Fixed;
  241.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  242.     INLINE $2F3C, $8412, $0036, $A8B5;
  243.     {$ENDC}
  244. {$ENDC}  {OLDROUTINENAMES}
  245.  
  246. {$ALIGN RESET}
  247. {$POP}
  248.  
  249. {$SETC UsingIncludes := QuickdrawTextIncludes}
  250.  
  251. {$ENDC} {__QUICKDRAWTEXT__}
  252.  
  253. {$IFC NOT UsingIncludes}
  254.  END.
  255. {$ENDC}
  256.